package com.adee.algorithm.structure;

public class Test004_Queens8 {
    public static void main(String[] args) {

    }
    /*
    * 回溯算法解八皇后问题
    * 八皇后问题描述：
    *   在8*8个方格的棋盘上摆放8个皇后，使其不能相互攻击，
    *   即：任意两个皇后不能处于同一行、同一列、同一斜线上，计算共有多少种摆法。
    *
    * 解题思路：
    * 1. 第1个皇后放第1行第1列；
    * 2. 第2个皇后放第2行第1列，然后判断是否ok，如果不ok，继续放第2列、第3列、依次把所有列都放完，找到一个满足条件的位置；
    * 3. 继续第3个皇后，还是第1列、第2列...直到第8个皇后也能放在一个不冲突的位置，算是找到了一个正确的解；
    * 4. 当得到一个正确解时，在栈回退到上一个栈时，就会开始回溯，即将第1个皇后放到第1列的所有正确解全部得到；
    * 5. 然后回头继续第1个皇后放第2列，后面继续循环执行1、2、3、4的步骤。
    * */

}
